DEFINITION MODULE MakeForest;
 
  (*
   * MAKEMAKE.  Create a MAKEFILE for a MODULA-2 program.
   *
   * Written by Steve Tynor, 30 September 1986.
   *            UUCP  : tynor@gitpyr
   *            USNAIL: 2550 Akers Mill Rd. T-2, Atlanta GA. 30339
   *
   * Permission is granted to distribute, copy and change this program as long
   * as this notice remains...
   *)

TYPE
  String = ARRAY [0 .. 100] OF CHAR;

  FileDefinitionList = POINTER TO FileDefinitionRec;
  ImportList         = POINTER TO ImportRec;

  FileDefinitionRec  = RECORD
    filename : String;
    library  : BOOLEAN;           (* this file is a library module *)
    next     : FileDefinitionList;
    imports  : ImportList;        (* points to linked list of imported files *)
  END; (* RECORD *)

  ImportRec  = RECORD
    file : FileDefinitionList;
    next : ImportList;
  END; (* RECORD *)

VAR
  FileForestEnd,
  FileForest : FileDefinitionList;

  (*----------------------------------------------------------------------*)
  PROCEDURE AddImport (VAR fileDefinition :  FileDefinitionList;
                       VAR fname          : ARRAY OF CHAR); 

  (*----------------------------------------------------------------------*)
  PROCEDURE AddFile (VAR fname          : ARRAY OF CHAR; 
                     VAR fileDefinition :  FileDefinitionList ) : BOOLEAN;
    (* returns TRUE if file added, FALSE if the file was already there *)

END MakeForest.
